home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 18 / AMIGAplus Sonderheft 18 (1999)(ICP)(DE)[!].iso / Forum / MichaelRoth / 3-3-99 / code / XNOR.SUB < prev    next >
Text File  |  1998-08-31  |  1KB  |  32 lines

  1. BTB_XOR
  2. ; A0 -> Klartext
  3. ; A1 -> Key
  4. ; D0 -> Länge des Klartextes
  5. ; D1 -> Länge des Keys
  6.  
  7.          movem.l  d1-d7/a2-a6,-(sp)
  8. ;         move.l   memblock,a0                    ; Startadresse des Klartextes
  9. ;         move.l   memblock2,a1                   ; "" des Keys
  10. ;         move.l   filelänge,d0                   ; Länge des Buffers
  11. ;         move.l   filelänge2,d1                  ; Länge des Keys
  12.  
  13.          lea      (a0,d0),a2                     ; Endadresse des Buffers berechnen
  14.          lea      (a1,d1),a3                     ; """" des Keys
  15. .loop1
  16.          move.b   (a1)+,d4
  17.          eor.b    d4,(a0)+                        ; XNOR bilden
  18.          cmp.l    a0,a2                          ; Prüfen ob Buffer am Ende
  19.          bhi.s    .goon
  20.  
  21. .goon
  22.          rol.b    #4,d4
  23.          eor.b    d4,(a0)+
  24.          cmp.l    a1,a3                          ; Prüfen ob Key am Ende
  25.          bhi.s    .goon2                          ; wenn nein weiter
  26.          move.l   memblock2,a1                         ; ansonsten neu laden
  27. .goon2                                            ;
  28.          cmp.l    a0,a2                          ; Prüfen ob Buffer am Ende
  29.          bhi.s    .loop1                         ; Nein -> nächste schleife
  30.          movem.l  (sp)+,d2-d7/a2-a6
  31.          rts
  32.